//: C18:Datagen.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
//{L} Datalog
// Test data generator
#include "DataLogger.h"
#include "../require.h"
#include <fstream>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
    ofstream data("data.txt");
    assure(data, "data.txt");
    ofstream bindata("data.bin", ios::binary);
    assure(bindata, "data.bin");
    time_t timer;
    // Seed random number generator:
    srand(time(&timer));
    for (int i = 0; i < 100; i++) {
        DataPoint d;
        // Convert date/time to a structure:
        d.setTime(*localtime(&timer));
        timer += 55; // Reading each 55 seconds
        d.setLatitude("45*20'31\"");
        d.setLongitude("22*34'18\"");
        // Zero to 199 meters:
        double newdepth  = rand() % 200;
        double fraction = rand() % 100 + 1;
        newdepth += double(1) / fraction;
        d.setDepth(newdepth);
        double newtemp = 150 + rand()%200; // Kelvin
        fraction = rand() % 100 + 1;
        newtemp += (double)1 / fraction;
        d.setTemperature(newtemp);
        d.print(data);
        bindata.write((unsigned char*)&d,
                      sizeof(d));
    }
} ///:~
